mruby 4.0.0
mruby is the lightweight implementation of the Ruby language
Loading...
Searching...
No Matches
value.h File Reference

More...

#include "common.h"
#include <inttypes.h>
#include <mruby/object.h>
#include "boxing_no.h"
Include dependency graph for value.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define FALSE   0
#define TRUE   1
#define MRB_INT_BIT   32
#define MRB_INT_MIN   INT32_MIN
#define MRB_INT_MAX   INT32_MAX
#define MRB_PRIo   PRIo32
#define MRB_PRId   PRId32
#define MRB_PRIx   PRIx32
#define MRB_FLAGS_MASK(shift, width)
#define MRB_FLAGS_GET(b, s, w)
#define MRB_FLAGS_SET(b, s, w, n)
#define MRB_FLAGS_ZERO(b, s, w)
#define MRB_FLAGS_MAKE(s, w, n)
#define MRB_FLAG_ON(b, s)
#define MRB_FLAG_OFF(b, s)
#define MRB_FLAG_CHECK(b, s)
#define MRB_VTYPE_FOREACH(f)
#define MRB_VTYPE_DEFINE(tt, type, name)
#define MRB_TT_DATA   MRB_TT_CDATA
#define MRB_VTYPE_TYPEOF(tt)
#define MRB_VTYPE_TYPEDEF(tt, type, name)
#define MRB_TT_FIXNUM   MRB_TT_INTEGER
#define MRB_SSIZE_MAX   MRB_INT_MAX
#define mrb_immediate_p(o)
#define mrb_integer_p(o)
#define mrb_fixnum_p(o)
#define mrb_symbol_p(o)
#define mrb_undef_p(o)
#define mrb_nil_p(o)
#define mrb_false_p(o)
#define mrb_true_p(o)
#define mrb_float_p(o)
#define mrb_array_p(o)
#define mrb_string_p(o)
#define mrb_hash_p(o)
#define mrb_cptr_p(o)
#define mrb_exception_p(o)
#define mrb_free_p(o)
#define mrb_object_p(o)
#define mrb_class_p(o)
#define mrb_module_p(o)
#define mrb_iclass_p(o)
#define mrb_sclass_p(o)
#define mrb_proc_p(o)
#define mrb_range_p(o)
#define mrb_env_p(o)
#define mrb_data_p(o)
#define mrb_fiber_p(o)
#define mrb_istruct_p(o)
#define mrb_break_p(o)
#define mrb_bool(o)
#define mrb_test(o)
#define mrb_bigint_p(o)
#define mrb_ro_data_p(p)

Typedefs

typedef uint32_t mrb_sym
typedef uint8_t mrb_bool
typedef int32_t mrb_int
typedef uint32_t mrb_uint
typedef double mrb_float
typedef void MRB_TYPEOF_MRB_TT_FALSE
typedef void MRB_TYPEOF_MRB_TT_TRUE
typedef void MRB_TYPEOF_MRB_TT_SYMBOL
typedef void MRB_TYPEOF_MRB_TT_UNDEF
typedef void MRB_TYPEOF_MRB_TT_FREE
typedef struct RFloat MRB_TYPEOF_MRB_TT_FLOAT
typedef struct RInteger MRB_TYPEOF_MRB_TT_INTEGER
typedef struct RCptr MRB_TYPEOF_MRB_TT_CPTR
typedef struct RObject MRB_TYPEOF_MRB_TT_OBJECT
typedef struct RClass MRB_TYPEOF_MRB_TT_CLASS
typedef struct RClass MRB_TYPEOF_MRB_TT_MODULE
typedef struct RClass MRB_TYPEOF_MRB_TT_SCLASS
typedef struct RHash MRB_TYPEOF_MRB_TT_HASH
typedef struct RData MRB_TYPEOF_MRB_TT_CDATA
typedef struct RException MRB_TYPEOF_MRB_TT_EXCEPTION
typedef struct RClass MRB_TYPEOF_MRB_TT_ICLASS
typedef struct RProc MRB_TYPEOF_MRB_TT_PROC
typedef struct RArray MRB_TYPEOF_MRB_TT_ARRAY
typedef struct RString MRB_TYPEOF_MRB_TT_STRING
typedef struct RRange MRB_TYPEOF_MRB_TT_RANGE
typedef struct REnv MRB_TYPEOF_MRB_TT_ENV
typedef struct RFiber MRB_TYPEOF_MRB_TT_FIBER
typedef struct RArray MRB_TYPEOF_MRB_TT_STRUCT
typedef struct RIStruct MRB_TYPEOF_MRB_TT_ISTRUCT
typedef struct RBreak MRB_TYPEOF_MRB_TT_BREAK
typedef struct RComplex MRB_TYPEOF_MRB_TT_COMPLEX
typedef struct RRational MRB_TYPEOF_MRB_TT_RATIONAL
typedef struct RBigint MRB_TYPEOF_MRB_TT_BIGINT
typedef struct RBacktrace MRB_TYPEOF_MRB_TT_BACKTRACE
typedef struct RSet MRB_TYPEOF_MRB_TT_SET
typedef mrb_int mrb_ssize

Enumerations

enum  mrb_vtype {
  MRB_TT_FALSE , MRB_TT_TRUE , MRB_TT_SYMBOL , MRB_TT_UNDEF ,
  MRB_TT_FREE , MRB_TT_FLOAT , MRB_TT_INTEGER , MRB_TT_CPTR ,
  MRB_TT_OBJECT , MRB_TT_CLASS , MRB_TT_MODULE , MRB_TT_SCLASS ,
  MRB_TT_HASH , MRB_TT_CDATA , MRB_TT_EXCEPTION , MRB_TT_ICLASS ,
  MRB_TT_PROC , MRB_TT_ARRAY , MRB_TT_STRING , MRB_TT_RANGE ,
  MRB_TT_ENV , MRB_TT_FIBER , MRB_TT_STRUCT , MRB_TT_ISTRUCT ,
  MRB_TT_BREAK , MRB_TT_COMPLEX , MRB_TT_RATIONAL , MRB_TT_BIGINT ,
  MRB_TT_BACKTRACE , MRB_TT_SET , MRB_TT_MAXDEFINE
}

Functions

mrb_bool mrb_read_int (const char *p, const char *e, char **endp, mrb_int *np)
mrb_int mrb_int_read (const char *, const char *, char **)
mrb_bool mrb_read_float (const char *p, char **endp, double *fp)
double mrb_float_read (const char *p, char **endp)
static mrb_value mrb_float_value (mrb_state *mrb, mrb_float f)
 Returns a float in Ruby.
static mrb_value mrb_cptr_value (mrb_state *mrb, void *p)
static mrb_value mrb_int_value (mrb_state *mrb, mrb_int i)
 Returns an integer in Ruby.
static mrb_value mrb_fixnum_value (mrb_int i)
static mrb_value mrb_symbol_value (mrb_sym i)
static mrb_value mrb_obj_value (void *p)
static mrb_value mrb_nil_value (void)
 Get a nil mrb_value object.
static mrb_value mrb_false_value (void)
 Returns false in Ruby.
static mrb_value mrb_true_value (void)
 Returns true in Ruby.
static mrb_value mrb_bool_value (mrb_bool boolean)
static mrb_value mrb_undef_value (void)

Detailed Description

  • mruby value definitions

See Copyright Notice in mruby.h

Macro Definition Documentation

◆ mrb_array_p

#define mrb_array_p ( o)
Value:
(mrb_type(o) == MRB_TT_ARRAY)

◆ mrb_bigint_p

#define mrb_bigint_p ( o)
Value:
FALSE

◆ mrb_bool

#define mrb_bool ( o)
Value:
(mrb_type(o) != MRB_TT_FALSE)

◆ mrb_break_p

#define mrb_break_p ( o)
Value:
(mrb_type(o) == MRB_TT_BREAK)

◆ mrb_class_p

#define mrb_class_p ( o)
Value:
(mrb_type(o) == MRB_TT_CLASS)

◆ mrb_cptr_p

#define mrb_cptr_p ( o)
Value:
(mrb_type(o) == MRB_TT_CPTR)

◆ mrb_data_p

#define mrb_data_p ( o)
Value:
(mrb_type(o) == MRB_TT_CDATA)

◆ mrb_env_p

#define mrb_env_p ( o)
Value:
(mrb_type(o) == MRB_TT_ENV)

◆ mrb_exception_p

#define mrb_exception_p ( o)
Value:
(mrb_type(o) == MRB_TT_EXCEPTION)

◆ mrb_false_p

#define mrb_false_p ( o)
Value:
(mrb_type(o) == MRB_TT_FALSE && !!mrb_fixnum(o))

◆ mrb_fiber_p

#define mrb_fiber_p ( o)
Value:
(mrb_type(o) == MRB_TT_FIBER)

◆ mrb_fixnum_p

#define mrb_fixnum_p ( o)
Value:
mrb_integer_p(o)

◆ MRB_FLAG_CHECK

#define MRB_FLAG_CHECK ( b,
s )
Value:
(!!((b) & MRB_FLAGS_MASK(s, 1)))

◆ MRB_FLAG_OFF

#define MRB_FLAG_OFF ( b,
s )
Value:
((b) &= ~MRB_FLAGS_MASK(s, 1))

◆ MRB_FLAG_ON

#define MRB_FLAG_ON ( b,
s )
Value:
((b) |= MRB_FLAGS_MASK(s, 1))

◆ MRB_FLAGS_GET

#define MRB_FLAGS_GET ( b,
s,
w )
Value:
(((b) >> (s)) & MRB_FLAGS_MASK(0, w))

◆ MRB_FLAGS_MAKE

#define MRB_FLAGS_MAKE ( s,
w,
n )
Value:
(((n) & MRB_FLAGS_MASK(0, w)) << (s))

◆ MRB_FLAGS_MASK

#define MRB_FLAGS_MASK ( shift,
width )
Value:
(~(~0U << (width)) << (shift))

◆ MRB_FLAGS_SET

#define MRB_FLAGS_SET ( b,
s,
w,
n )
Value:
((b) = MRB_FLAGS_ZERO(b, s, w) | MRB_FLAGS_MAKE(s, w, n))

◆ MRB_FLAGS_ZERO

#define MRB_FLAGS_ZERO ( b,
s,
w )
Value:
((b) & ~MRB_FLAGS_MASK(s, w))

◆ mrb_float_p

#define mrb_float_p ( o)
Value:
(mrb_type(o) == MRB_TT_FLOAT)

◆ mrb_free_p

#define mrb_free_p ( o)
Value:
(mrb_type(o) == MRB_TT_FREE)

◆ mrb_hash_p

#define mrb_hash_p ( o)
Value:
(mrb_type(o) == MRB_TT_HASH)

◆ mrb_iclass_p

#define mrb_iclass_p ( o)
Value:
(mrb_type(o) == MRB_TT_ICLASS)

◆ mrb_immediate_p

#define mrb_immediate_p ( o)
Value:
(mrb_type(o) <= MRB_TT_CPTR)

◆ mrb_integer_p

#define mrb_integer_p ( o)
Value:
(mrb_type(o) == MRB_TT_INTEGER)

◆ mrb_istruct_p

#define mrb_istruct_p ( o)
Value:
(mrb_type(o) == MRB_TT_ISTRUCT)

◆ mrb_module_p

#define mrb_module_p ( o)
Value:
(mrb_type(o) == MRB_TT_MODULE)

◆ mrb_nil_p

#define mrb_nil_p ( o)
Value:
(mrb_type(o) == MRB_TT_FALSE && !mrb_fixnum(o))

◆ mrb_object_p

#define mrb_object_p ( o)
Value:
(mrb_type(o) == MRB_TT_OBJECT)

◆ mrb_proc_p

#define mrb_proc_p ( o)
Value:
(mrb_type(o) == MRB_TT_PROC)

◆ mrb_range_p

#define mrb_range_p ( o)
Value:
(mrb_type(o) == MRB_TT_RANGE)

◆ mrb_ro_data_p

#define mrb_ro_data_p ( p)
Value:
FALSE

◆ mrb_sclass_p

#define mrb_sclass_p ( o)
Value:
(mrb_type(o) == MRB_TT_SCLASS)

◆ mrb_string_p

#define mrb_string_p ( o)
Value:
(mrb_type(o) == MRB_TT_STRING)

◆ mrb_symbol_p

#define mrb_symbol_p ( o)
Value:
(mrb_type(o) == MRB_TT_SYMBOL)

◆ mrb_test

#define mrb_test ( o)
Value:
mrb_bool(o)

◆ mrb_true_p

#define mrb_true_p ( o)
Value:
(mrb_type(o) == MRB_TT_TRUE)

◆ mrb_undef_p

#define mrb_undef_p ( o)
Value:
(mrb_type(o) == MRB_TT_UNDEF)

◆ MRB_VTYPE_DEFINE

#define MRB_VTYPE_DEFINE ( tt,
type,
name )
Value:
tt,

◆ MRB_VTYPE_TYPEDEF

#define MRB_VTYPE_TYPEDEF ( tt,
type,
name )
Value:
typedef type MRB_VTYPE_TYPEOF(tt);

◆ MRB_VTYPE_TYPEOF

#define MRB_VTYPE_TYPEOF ( tt)
Value:
MRB_TYPEOF_##tt

Function Documentation

◆ mrb_float_value()

mrb_value mrb_float_value ( mrb_state * mrb,
mrb_float f )
inlinestatic

Returns a float in Ruby.

Takes a float and boxes it into an mrb_value

◆ mrb_nil_value()

mrb_value mrb_nil_value ( void )
inlinestatic

Get a nil mrb_value object.

Returns
nil mrb_value object reference.